約 2,313,198 件
https://w.atwiki.jp/nicepaper/pages/67.html
前回記事MySQLでテーブル作成2ではフィールドの挿入等の確認をしました。次にPHP側でコードを書いてデータベースへ挿入です。色々とセキュリティに関する事項がでてくるので、執筆が長くなるかもしれませんが、ご了承ください。6月2日記事 目次 掟 ユーザが入力したJavaScriptを実行させないhtmlspecialchars関数 MySQLへデータを正確に処理させ、データベースの内容を改ざん削除させないSQLインジェクション対策 PDOの利用 フォームを作ってみる 確認ページ 完了ページ 現在の風潮 感想 掟 phpでMySQLとの連携プログラムを書く際に、注意しなければならない点がいくつかあります。その中で、2つに絞ってまずは話していきたいと思います。非常に最初は混同しがちですが、よく読みながら見ていってください。 ユーザが入力したJavaScriptを実行させないhtmlspecialchars関数 現在、JavaScriptを使ったWEBページは多く存在しています。JavaScriptを利用することで、表示上動きのあるWEBサイト構築が可能になっています。閲覧者、利用者の多くはブラウザでJavaScriptの実行をONにしていることが多く、JavaScriptの利用は必要不可欠になっています。しかし、その部分を悪用し、「JavaScriptで他のサイトに転送(リダイレクト)させたり、悪意のあるコードを読み込ませたりする攻撃」が多発しています。この攻撃を「クロスサイトスクリプティング」といいます。ある利用者が掲示板や皆が閲覧するページにこのJavaScriptのコードを埋め込まれた記事を書いてしまったら、そのページの利用者に多くの迷惑をかけることになります。そのため、 利用者には、JavaScriptの実行コードを埋め込ませてもそれを実行させないための対策 が必要となります。開発者は悪意がなければ開発時にページにJavaScriptコードを埋め込んでしまってもかまいません。あくまで 利用者にJavaScriptのコードを埋め込ませてもよいが、その内容を表示させるときにJavaScriptは実行させないプログラムを書く ということが重要です。それができるのがhtmlspecialchars関数です。 MySQLへデータを正確に処理させ、データベースの内容を改ざん削除させないSQLインジェクション対策 次に、利用者が勝手にデータベースの内容を改ざんしたり、削除させたりしない対策が必要になります。データベースに内容を挿入、更新、削除する場合、当然SQLのクエリを内部で実行させています。そのため、悪意のある利用者がこのSQLクエリを実行させるような内容を記述されてしまったら、データベースの内容が改ざん、削除されてしまいます。URLの末尾にSQLのクエリを書いたり、フォームの部分にSQLのクエリを書けばそのようなことが起きる場合があります。この攻撃のことを「SQLインジェクション」と言います。そのため、 利用者に悪意のあるSQLクエリを入れられても実行させないための対策 が必要になります。以前はmysql_real_escape_stringという関数を使って対策を行っていましたが、色々と悪意のあるコードを実行させる手法が登場してきているため現在はこの関数は 非推奨 となっています。現在では、PDOを使ってデータベースに挿入、更新、取得をさせる方法が主流です。 PDOの利用 PDOの設定についてはPDOの利用をご参照ください。 フォームを作ってみる こちらはただのHTMLを記述していきます。 と宣言したのですが、SELECTタグを使ってフォームを作ると、2月30日や4月31日が作成可能になってしまいますので、公開日等のフォームをjQueryで作っていきたいと思います。もし2月30日や4月31日をクエリで投げてもデフォルト値で指定したもの等になってしまいますので、制限する必要があります。多少横道にはそれますがご了承ください。作り方はjQueryで日付入力フォームを作るをご参照ください。公開日のところ以外のCSS記述は割愛します。各自CSSでうにょうにょやってください。 ファイル名(register.php) !DOCTYPE HTML html lang="ja" head meta charset="utf-8" title 新規作成 /title script type="text/javascript" src="http //ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js" /script script type="text/javascript" src="http //ajax.googleapis.com/ajax/libs/jqueryui/1/jquery-ui.min.js" /script script type="text/javascript" src="http //ajax.googleapis.com/ajax/libs/jqueryui/1/i18n/jquery.ui.datepicker-ja.min.js" /script link type="text/css" href="http //ajax.googleapis.com/ajax/libs/jqueryui/1/themes/ui-lightness/jquery-ui.css" rel="stylesheet" / script type="text/javascript" $(function(){ $("#datepicker").datepicker() }); /script /head body form action="confirm.php" method="post" dl dt 公開日 /dt dd input type="text" name="form_date" id="datepicker" /dd !--textにした理由はwebkit対策-- dt 種類 /dt dd select name="form_type" option value="1" selected ニュース /option option value="2" 更新情報 /option option value="3" 入荷情報 /option option value="4" その他 /option /select dt タイトル /dt dd input type="text" name="form_title" size="40" maxlength="30" /dd dt 内容 /dt dd textarea name="form_info_text" cols="40" rows="5" /textarea /dd dt URL /dt dd input type="url" name="form_url" size="40" /dd dt ステータス /dt dd select name="form_status" option value="2" selected 公開 /option option value="1" 下書き /option /select /dd /dl input type="submit" name="form_submit" value="確認" /form /body /html データベースに挿入する名前とフォームの部品の名前を区別するためにフォームの方にはform_という名前を付けておきました。 するとこうなります。 確認ページ こちらは、クロスサイトスクリプティング対策を兼ねたコードを記述してきます。 JavaScriptのコードを実行させない確認表示が必要になります。「別に、埋め込んだ人が自分で自分を攻撃してどうするの?」という方もいらっしゃると思いますが、HTMLを正確に出力するということはある意味標準で考えなければならないことなので、htmlspecialchars関数を使って記述していきます。ここからはphpを実行させる環境を用意してください。 コード(ファイル名:confirm.php) !DOCTYPE HTML html lang="ja" head meta charset="utf-8" title 確認画面 /title /head body ?php /*特定のURIから送信された時のみ実行*/ if($_SERVER["HTTP_REFERER"] == (empty($_SERVER["HTTPS"]) ? "http //" "https //").$_SERVER[ HTTP_HOST ]."/register.phpまでのフォルダを記述/register.php"){ /*まずはエラー処理*/ $error = ;/*初期化。以降エラーがあれば$errorに格納していく。*/ if($_POST[ form_date ] == ) $error .= 日付が選択されていません。 br ;/*①*/ if(preg_match( /^([1-9][0-9]{3})\/(0[1-9]{1}|1[0-2]{1})\/(0[1-9]{1}|[1-2]{1}[0-9]{1}|3[0-1]{1})$/ , $_POST[ form_date ])){}else{ $error .= 不正な日付です。 br ;} if($_POST[ form_type ] == ) $error .= 投稿種類が選択されていません。 br ; if($_POST[ form_title ] == ) $error .= タイトルが入力されていません。 br ; if(mb_strlen($_POST[ form_title ]) 30) $error .= 30文字以内にしてください br ; if($_POST[ form_info_text ] == ) $error .= 内容が入力されていません。 br ; if(mb_strlen($_POST[ form_info_text ]) 1000) $error .= 1000文字以内にしてください br ; if($_POST[ form_status ] == ) $error .= 状態が選択されていません。 br ; echo $error;/*エラーがあればエラーを表示*/ if($error == ){ echo dl dt 日付 /dt dd .htmlspecialchars($_POST[ form_date ]). /dd dt 種類 /dt dd ; switch ($_POST[ form_type ]){ case 1 echo ニュース ; break; case 2 echo 更新情報 ; break; case 3 echo 入荷情報 ; break; case 4 echo その他 ; break; default echo その他 ; } echo /dd dt タイトル /dt dd .htmlspecialchars($_POST[ form_title ]). /dd dt 内容 /dt dd .nl2br(htmlspecialchars($_POST[ form_info_text ])). /dd dt URL /dt dd .htmlspecialchars($_POST[ form_url ]). /dd dt 状態 /dt dd ; switch ($_POST[ form_status ]){ case 0 echo 削除 ; break; case 1 echo 下書き ; break; case 2 echo 公開 ; break; default echo 削除 ; } echo /dd /dl form action="complete.php" method="post" input type="hidden" name="form_date" value=" .htmlspecialchars($_POST[ form_date ]). " input type="hidden" name="form_type" value=" .htmlspecialchars($_POST[ form_type ]). " input type="hidden" name="form_title" value=" .htmlspecialchars($_POST[ form_title ]). " input type="hidden" name="form_info_text" value=" .htmlspecialchars($_POST[ form_info_text ]). " input type="hidden" name="form_url" value=" .htmlspecialchars($_POST[ form_url ]). " input type="hidden" name="form_status" value=" .htmlspecialchars($_POST[ form_status ]). " p この内容でよろしいでしょうか? /p input type="submit" name="submit" value="はい" input type="button" value="戻る" onClick="history.back()" /form ; } }else{ echo 正しいアクセスを心がけてください。 ; } ? /body /html 解説 ①$error .= は前の$errorという変数に付け加えていくという意味です。 表示はこのようになります。 完了ページ こちらは、SQLインジェクション対策を兼ねたコードを記述していきます。 ここではMySQLのINSERT文を投げていきます。 ファイル名(complete.php) !DOCTYPE HTML html lang="ja" head meta charset="utf-8" title 完了 /title /head body ?php /*特定のURIから送信された時のみ実行*/ if($_SERVER["HTTP_REFERER"] == (empty($_SERVER["HTTPS"]) ? "http //" "https //").$_SERVER[ HTTP_HOST ]."/confirm.phpまでのフォルダ記述/confirm.php"){ $dsn = mysql dbname=データベース名;host=ローカルホスト;port=ポート番号 ; $user = ユーザ名 ; $password = ユーザパスワード ; $dbh = new PDO($dsn, $user, $password); try{ //成功時対応 $stmt = $dbh - prepare("INSERT INTO テーブル名 ( info_date ,title,type,info_text,url,status) VALUES ( info_date, title, type, info_text, url, status)"); $stmt- bindParam( info_date , $_POST[ form_date ], PDO PARAM_STR); $stmt- bindParam( title , $_POST[ form_title ], PDO PARAM_STR); $stmt- bindParam( type , $_POST[ form_type ], PDO PARAM_INT); $stmt- bindParam( info_text , $_POST[ form_info_text ], PDO PARAM_STR); $stmt- bindParam( url , $_POST[ form_url ], PDO PARAM_STR); $stmt- bindParam( status , $_POST[ form_status ], PDO PARAM_INT); $stmt- execute();//実行 switch ($_POST[ form_status ]){ case 0 echo 削除しました。 br ; break; case 1 echo 下書きに保存しました。 br ; break; case 2 echo 公開対象になりました。 br ; break; default echo 削除しました。 br ; } print a href="register.php" 新規作成へ戻る /a ; }catch (PDOException $e){//失敗時対応 print( Connection failed .$e- getMessage()); die(); } $dbh = null; }else{ echo 正しいアクセスを心がけてください。 ; } ? /body /html 現在の風潮 現在、確認ページを作らず、挿入される値をチェックして、エラーがなければすぐ挿入という方法も流行ったりしています。その記事はいつか作っていきたいと思います。初回ということでSQLインジェクションとクロスサイトスクリプティングの利用ということで、このような記事を作っていきました。 感想 この方法だと、complete.phpで更新ボタンを押すと、またデータが挿入されてしまいます。Sessionファイルを使って、フォームを受け取り等をし、完了したら、Sessionファイルを空にする的なコードを書けば、それが防げます。 我ながらに下手なコードだなぁ・・・。もっと色々と変えなければならないことが山ほどあります。まあ、PHPでこんな風に書くよ的なことがわかればいいなと思ったりもします。(考え方甘い?) 次回は挿入したデータを取得していき、表示したいと思います。ページ名は、PHPとMySQLでデータの取得です。 コメントお待ちしております。 名前 コメント
https://w.atwiki.jp/m_shige1979/pages/1392.html
接続 概要 DNSを指定して、接続しオブジェクトにはnullを設定すれば切断されます。 サンプル ソース ?php /******************************************* * PDO *******************************************/ try{ // MySQLサーバへ接続 $pdo = new PDO( "mysql host=localhost; dbname=pdotest", "root", ""); // ダンプ var_dump($pdo); }catch(PDOException $e){ var_dump($e- getMessage()); } // 切断 $pdo = null; 結果 php -f sample01.php object(PDO)#1 (0) { }
https://w.atwiki.jp/m_shige1979/pages/784.html
QdMail QDMail+QdSmtp ダウンロード QdMail、QdSmtp ※設定はPHPでインクルードすれば仕様可能 サンプル ?php require_once( qdsmtp.php ); require_once( qdmail.php ); $mail = new Qdmail(); $param = array( host = SMTPサーバ , port = ポート, from = fromメールアドレス , protocol = 認証方式 , user = ユーザー名 , pass = パスワード ); $mail- smtp(true); $mail- smtpServer($param); $message="メールの中身をここに書きます。"; $mail- to( メールアドレス , スポック宛 ); $mail- subject( メールのテスト ); $mail- from( Fromメールアドレス , From日本語名 ); $mail- replyto( Replytoメールアドレス , 返信先replyto日本語名 ); $mail- text($message); $return_flag = $mail - send(); ? 参考 HAL456リスト
https://w.atwiki.jp/omisono_php/pages/22.html
画像データの値の受渡の為の define 変数の値 PHP_SELF このスクリプト DEFAULT_DIR oekaki/ HIGHDIR_SELECT false SAVE_LIMIT 保存ディレクトリに保存する日数(0だと期限無し)デフォルト 0 TIMEZONE //タイムゾーンのオフセット(日本+9 00) 9*60*60 SEND_USERCODE user-codeを発行(クッキー保存)する デフォルト true IP_CHECK //user-codeの次にIPで投稿者を判断する デフォルト true HTML_TITLE タイトル デフォルト 手書きカルテ HTML_CHARSET SHIFT-JIS X_MAX //画像一覧で1行に表示する件数 デフォルト 4 PDEF_W お絵描きデフォルトサイズ PDEF_H お絵描きデフォルトサイズ IMAGE_SIZE //画像のデータがこの値より大きくなるとき、 //・保存タイプが AUTOの場合、JPEGに変換 //・保存タイプが PNG の場合、減色処理 //ただし、保存タイプが JPEGの場合は、この値を無視してJPEGに変換 CUSTOM_PALETTE //カスタムパレット定義ファイル デフォルト palette.txt DYNAMIC_PALETTE //WCS動的パレットコントロールファイル by (C)のらネコ WonderCatStudio http //wondercatstudio.com/ デフォルト palette.js APPLET_PARAM_PAINTBBS アプレットの設定 APPLET_PARAM_SHI しぃペインターアプレットの設定 APPLET_PARAM_COMMON //--共通デフォルト //{$custompalette}追加(lot.050305) ANIME_PARAM_PAINTBBS //アニメーションパラメーター //--PaintBBS ANIME_PARAM_SHI //--しぃペインター ANIME_PARAM_COMMON //--共通 TIMESTAMP_GMT //タイムスタンプ(GMT) デフォルト time() - date( Z ) SAVE_DIR //保存ディレクトリを指定 if($d){ $s_dir = rawurldecode($d); $q_str = ?d= .rawurlencode($s_dir). ; }else{ $s_dir = DEFAULT_DIR; $q_str = ? ; } QUERY_STRING QUERY_STRING //このスクリプト名 //define(PHP_SELF, picmaker.php ); define(PHP_SELF, $PHP_SELF); //デフォルト保存ディレクトリ define(DEFAULT_DIR, oekaki/ ); //上位階層をまたがるディレクトリ指定を許す(相対) define(HIGHDIR_SELECT, false); //保存ディレクトリに保存する日数(0だと期限無し) define(SAVE_LIMIT, 0 ); //タイムゾーンのオフセット(日本+9 00) define(TIMEZONE, 9*60*60); //user-codeを発行(クッキー保存)する define(SEND_USERCODE, true); //user-codeの次にIPで投稿者を判断する define(IP_CHECK, true); //HTMLタイトル define(HTML_TITLE, 手書きカルテ ); //HTML文字コード define(HTML_CHARSET, SHIFT-JIS ); //画像一覧で1行に表示する件数 define(X_MAX, 4 ); //お絵描きデフォルトサイズ define(PDEF_W, 480 ); //幅 define(PDEF_H, 640 ); //高さ //画像のデータがこの値より大きくなるとき、 //・保存タイプが AUTOの場合、JPEGに変換 //・保存タイプが PNG の場合、減色処理 //ただし、保存タイプが JPEGの場合は、この値を無視してJPEGに変換 define(IMAGE_SIZE, 40 ); //カスタムパレット定義ファイル define(CUSTOM_PALETTE, palette.txt ); //追加(lot.050305) //WCS動的パレットコントロールファイル by (C)のらネコ WonderCatStudio http //wondercatstudio.com/ define(DYNAMIC_PALETTE, palette.js ); //追加(lot.050305) //アプレットパラメーター //--PaintBBS define(APPLET_PARAM_PAINTBBS, APPLET CODE="pbbs.PaintBBS.class" ARCHIVE="./PaintBBS.jar" NAME="paintbbs" WIDTH="{$w}" HEIGHT="{$h}" MAYSCRIPT ); //--しぃペインター define(APPLET_PARAM_SHI, applet code="c.ShiPainter.class" archive="spainter_all.jar" name="paintbbs" WIDTH="{$w}" HEIGHT="{$h}" MAYSCRIPT param name=dir_resource value="./" param name=tt.zip value="tt_def.zip" param name=res.zip value="res.zip" param name=tools value="{$tools}" param name=layer_count value="3" param name="image_canvas" value="000045_20051031_K001.JPG" param name=quality value="{$quality}" ); //--共通デフォルト //{$custompalette}追加(lot.050305) define(APPLET_PARAM_COMMON, param name="image_width" value="{$picw}" param name="image_height" value="{$pich}" param name="image_jpeg" value="{$image_jpeg}" param name="image_size" value="{$image_size}" param name="compress_level" value="15" param name="undo" value="90" param name="undo_in_mg" value="45" param name="poo" value="false" param name="send_advance" value="true" param name="tool_advance" value="true" param name="url_save" value="picpost.php?d={$dir}" param name="url_exit" value="{$self}" param name="send_language" value="SJIS" param name="send_uencode" value="false" param name="send_header" value="user_code={$usercode} applettype={$applettype}" param name="send_header_timer" value="true" param name="send_header_count" value="true" param name="thumbnail_type" value="animation" param name="thumbnail_type2" value="jpeg" param name="thumbnail_compress_level" value="50" param name="thumbnail_width" value="50%" param name="thumbnail_height" value="50%" param name="security_click" value="10" param name="security_timer" value="20" param name="security_url" value="http //www.npa.go.jp/" param name="security_post" value="false" {$custompalette} ); //アニメーションパラメーター //--PaintBBS define(ANIME_PARAM_PAINTBBS, APPLET name="pch" code="pch.PCHViewer.class" archive="PCHViewer.jar,PaintBBS.jar" width="{$w}" height="{$h}" MAYSCRIPT ); //--しぃペインター define(ANIME_PARAM_SHI, APPLET name="pch" code="pch2.PCHViewer.class" archive="PCHViewer.jar,spainter_all.jar" codebase="./" width="{$w}" height="{$h}" param name=res.zip value="res.zip" param name=tt.zip value="tt_def.zip" param name=tt_size value="31" ); //--共通 define(ANIME_PARAM_COMMON, param name="image_width" value="{$picw}" param name="image_height" value="{$pich}" param name="pch_file" value="{$pchfile}" param name="speed" value="10" param name="buffer_progress" value="false" param name="buffer_canvas" value="false" ); //== 設定ここまで
https://w.atwiki.jp/temparance/
@wikiへようこそ ウィキはみんなで気軽にホームページ編集できるツールです。 このページは自由に編集することができます。 メールで送られてきたパスワードを用いてログインすることで、各種変更(サイト名、トップページ、メンバー管理、サイドページ、デザイン、ページ管理、等)することができます まずはこちらをご覧ください。 @wikiの基本操作 用途別のオススメ機能紹介 @wikiの設定/管理 分からないことは? @wiki ご利用ガイド よくある質問 無料で会員登録できるSNS内の@wiki助け合いコミュニティ @wiki更新情報 @wikiへのお問合せフォーム 等をご活用ください @wiki助け合いコミュニティの掲示板スレッド一覧 #atfb_bbs_list その他お勧めサービスについて 大容量1G、PHP/CGI、MySQL、FTPが使える無料ホームページは@PAGES 無料ブログ作成は@WORDをご利用ください 2ch型の無料掲示板は@chsをご利用ください フォーラム型の無料掲示板は@bbをご利用ください お絵かき掲示板は@paintをご利用ください その他の無料掲示板は@bbsをご利用ください 無料ソーシャルプロフィールサービス @flabo(アットフラボ) おすすめ機能 気になるニュースをチェック 関連するブログ一覧を表示 その他にもいろいろな機能満載!! @wikiプラグイン @wiki便利ツール @wiki構文 @wikiプラグイン一覧 まとめサイト作成支援ツール バグ・不具合を見つけたら? 要望がある場合は? お手数ですが、メールでお問い合わせください。
https://w.atwiki.jp/center_math/pages/183.html
0.14285714285714285714285714285714 0.16666666666666666666666666666667 0.33333333333333333333333333333333 0.36787944117144232159552377016146 0.41421356237309504880168872420970 0.70710678118654752440084436210485 0.73205080756887729352744634150587 0.83333333333333333333333333333333 0.86602540378443864676372317075294 1.2599210498948731647672106072782 1.4142135623730950488016887242097 1.5707963267948966192313216916398 1.7320508075688772935274463415059 2.7182818284590452353602874713527 3.1415926535897932384626433832795
https://w.atwiki.jp/physics/pages/25.html
講義情報 http //ag.riken.jp/cp/ 080125 課題12まで。 080116 課題11まで。 080111 課題9まで。 071214 課題8まで。 071207 課題8まで。 071130 課題8まで。 071122 課題8まで。 071116 課題7の提出まで。 071109 課題7まで。 071102 課題7まで。 071019 課題6まで。 071012 課題3まで。 071005 とりあえずセットアップみたいな感じ。 関連サイト http //www.ocw.titech.ac.jp/index.php?module=General Nendo=2007 action=T0300 GakubuCD=100 GakkaCD=12 KougiCD=5209 lang=JA http //www.ocw.titech.ac.jp/index.php?module=General action=T0300 Nendo=2007 GakubuCD=100 GakkaCD=12 KougiCD=5209 vid=04 lang=JA http //www.phys.titech.ac.jp/laboratory/iwasaki.html http //meson.riken.jp/members/shortlist.php 去年の講義 東京大学 物性研究所 物性理論研究部門 押川 正毅 教授 http //oshikawa.issp.u-tokyo.ac.jp/lectures/comp2006/index.html 使えそうなサイト 参考になるプログラムとか http //www.sra.co.jp/people/miyata/algorithm/ http //www23.atwiki.jp/physics/pages/22.html#id_07484642 http //web.cc.yamaguchi-u.ac.jp/~fukuyo/prog2/index.html http //www.iis.it-hiroshima.ac.jp/~nagasaka/lect/pa/2002/OHP/01/ http //www.iis.it-hiroshima.ac.jp/~nagasaka/lect/pa/2002/OHP/02/ 道具の使い方とか Mac keyboard shortcuts http //docs.info.apple.com/article.html?artnum=75459-ja http //www.westwind.com/reference/OS-X/keyboard-shortcuts.html http //keg.cside.com/mac_s-cut.html Emacs http //park15.wakwak.com/~unixlife/emacs.html http //www.unixuser.org/~euske/doc/emacsref/ Vi http //www.linux.or.jp/JF/JFdocs/vi-user-usage.html http //www.tokaido.co.jp/syoko/viman/frame.html http //atlas.kek.jp/physics/nyumon/vi-commands.html Xcode http //www.apple.com/jp/macosx/features/xcode/ # こいつ結構便利らしい。 # http //ja.wikipedia.org/wiki/Xcode gnuplot http //t16web.lanl.gov/Kawano/gnuplot/index.html 課題のヒント 課題8 参考 http //www-tph.cheme.kyoto-u.ac.jp/~ryoichi/lec/CP/2004/ http //www-tph.cheme.kyoto-u.ac.jp/~ryoichi/lec/CP/2004/chap2-6.html http //www-tph.cheme.kyoto-u.ac.jp/~ryoichi/lec/CP/2004/chap2_hand.pdf http //www-tph.cheme.kyoto-u.ac.jp/~ryoichi/lec/CP/2004/report2-1.pdf http //www-cms.phys.s.u-tokyo.ac.jp/~naoki/CIPINTRO/CIP/symplectic.html http //www-cms.phys.s.u-tokyo.ac.jp/~naoki/CIPINTRO/SYMP/index.html http //www.kurims.kyoto-u.ac.jp/~kyodo/kokyuroku/contents/pdf/1209-23.pdf http //www.kurims.kyoto-u.ac.jp/~kyodo/kokyuroku/contents/pdf/1271-27.pdf http //grape.mtk.nao.ac.jp/~makino/kougi/keisan_tenmongakuII/note6.pdf http //apyoung.com/115/leapfrog.pdf http //www.cp.cmc.osaka-u.ac.jp/~kikuchi/texts/conservation.pdf http //ocw.kyoto-u.ac.jp/jp/human/course01/pdf/rk.pdf http //next1.cc.it-hiroshima.ac.jp/MULTIMEDIA/numeanal2.pdf http //www.ecs.fullerton.edu/~mathews/n2003/rungekutta/RungeKuttaProof.pdf http //math.fullerton.edu/mathews/n2003/rungekutta/RungeKuttaProof.pdf http //www.cfca.nao.ac.jp/muv/note.pdf http //www.phys.keio.ac.jp/guidance/labs/riron/pdf/nosenote1.pdf 課題7 裏技 td ファイル名 データを分けてプロットする方法はこちら http //t16web.lanl.gov/Kawano/gnuplot/intro/plotexp.html その他もろもろ http //physics.s.chiba-u.ac.jp/~kurasawa/compute.pdf http //physics.s.chiba-u.ac.jp/~kurasawa/qm_a.pdf 調和振動子は として の行列を足してやればいいのかな? 課題6 とりあえず、 http //www.pluto.ai.kyutech.ac.jp/plt/matumoto/atan_table.txt で何とかなる。 # 公式の数が学科の人数越えてるからね…。 あとは、 http //mathworld.wolfram.com/PiFormulas.html http //www.boo.net/~jasonp/pipage.html http //www.mathpages.com/home/kmath373.htm http //www.mathpages.com/home/kmath457.htm http //www.cs.uwaterloo.ca/~alopez-o/math-faq/mathtext/node12.html http //www.jjj.de/hfloat/hfloatpage.html http //milan.milanovic.org/math/english/pi/machin.html http //www.pluto.ai.kyutech.ac.jp/plt/matumoto/syumi.html http //ja0hxv.calico.jp/pai/pietc.html http //www.math.tsukuba.ac.jp/~wkbysh/pi.pdf http //www.pluto.ai.kyutech.ac.jp/plt/matumoto/dvi/pi.pdf http //slashdot.jp/science/comments.pl?sid=60641 op= threshold=1 commentsort=3 mode=thread pid=0 http //www.pluto.ai.kyutech.ac.jp/plt/matumoto/pi_small/node3.html とか。
https://w.atwiki.jp/mitechcomputer/pages/5.html
https://w.atwiki.jp/kuronekonene/pages/35.html
あああ
https://w.atwiki.jp/wonder_kichijoji/pages/19.html
作成者 ぎてふ 概要 Unityのランダムな数値はRandom.valueで作ることができます. また,Random.Range(min, max)でも作ることができます. Random.valueは0〜1のfloat値 基本的に指定範囲でランダムしたければ, Random.valueで事足ります. 例: 10〜30のランダムな値 float randValue = 20f*Random.value +10f; Random.Range(min, max)はmin〜maxのint値・float値 Random.Range(min, max)でも指定の範囲のランダム値を得ることが可能です. 例: 10〜30のランダムな値 int randIntValue = Random.Range(10, 30); float randFloatValue = Random.Range(10f, 30f); おまけ:シードのお話 ランダムはコンピュータごとで特定の数列になっています. その数列の初期値を決めるのがシード(種)です. シードを常に固定にすれば,固定のランダム数値列を得ることができます. 一般的にC言語ではシードに現在の時間を与えることで,ランダムを生成しています. C#におけるシードの初期化は以下のように書きます. Random.InitState(System.DateTime.Now.Millisecond); 参考サイト 【Unity】ゲームといえばランダム要素。Randomクラスを使って遊ぼう